home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga3.lha / MEMORY_MAP_bas < prev    next >
Text File  |  1998-02-12  |  1KB  |  44 lines

  1. 160 CLS#1:PRINT#1;FILL$("*",40):CSIZE#1;2,1:PRINT#1;" MEMORY MAP - V1.04":CSIZE#1;0,0
  2. 170 MEMORY_MAP 1
  3. 180 STOP
  4. 190 DEFine PROCedure MEMORY_MAP(Ch%)
  5. 200 PRINT#Ch%;FILL$("-",40)\"COMMON HEAP"
  6. 210 f=SYS_VARS+4
  7. 220 GO SUB 380
  8. 230 PRINT#Ch%;\FILL$("-",40)\"FREE SPACE"
  9. 240 PRINT#Ch%;\"  [";HEX$(PEEK_L(SYS_VARS+12),32);"-";HEX$(PEEK_L(SYS_VARS+16),32);"]"
  10. 250 PRINT#Ch%;\FILL$("-",40)\"SUPERBASIC AREA"
  11. 260 PRINT#Ch%;\"  [";HEX$(PEEK_L(SYS_VARS+16),32);"-";HEX$(PEEK_L(SYS_VARS+20),32);"]"
  12. 270 PRINT#Ch%;\FILL$("-",40)\"TRANSIENT PROGRAM AREA"
  13. 280 f=SYS_VARS+20
  14. 290 GO SUB 380
  15. 300 PRINT#Ch%;\FILL$("-",40)\"RESIDENT PROCEDURE AREA"
  16. 310 PRINT#Ch%;\"  [";HEX$(PEEK_L(SYS_VARS+28),32);"-";HEX$(PEEK_L(SYS_VARS+32),32);"]"
  17. 320 PRINT#Ch%;\FILL$("*",40)
  18. 330 END DEFine 
  19. 340 :
  20. 350 REMark list allocations in a heap
  21. 380 a=PEEK_L(f)
  22. 390 l=PEEK_L(f+8)
  23. 400 IF a<l THEN GO TO 430
  24. 410 PRINT#Ch%;\"   ...empty"
  25. 420 GO TO 600
  26. 430 PRINT#Ch%;\"   range              length    owner"\\
  27. 440 GO TO 510
  28. 450 IF a<=f THEN GO TO 540
  29. 460  IF fp<>0 THEN GO TO 490
  30. 470  IF a>=l THEN GO TO 600
  31. 480   GO TO 540
  32. 490   fl=PEEK_L(f)
  33. 500   PRINT#Ch%;"  [";HEX$(f,32);"-";HEX$((f+fl),32);"] ";HEX$(fl,32);"  ";PEEK_W(f+8);",";PEEK_W(f+10);" free"
  34. 510   fp=PEEK_L(f+4)
  35. 520   f=f+fp
  36. 530   GO TO 450
  37. 540  al=PEEK_L(a)
  38. 550  IF a<>f THEN 
  39. 560   PRINT#Ch%;"  [";HEX$(a,32);"-";HEX$((a+al),32);"] ";HEX$(al,32);"  ";PEEK_W(a+8);",";PEEK_W(a+10)
  40. 570  END IF 
  41. 580  a=a+al
  42. 590  GO TO 450
  43. 600 RETurn 
  44.